The progression of scientific computing resources has enabled the numericalapproximation of mathematical models describing complex physical phenomena. Asignificant portion of researcher time is typically dedicated to thedevelopment of software to compute the numerical solutions. This work describesa flexible C++ software framework, built on the libMesh finite element library,designed to alleviate developer burden and provide easy access to moderncomputational algorithms, including quantity-of-interest-driven paralleladaptive mesh refinement on unstructured grids and adjoint-based sensitivities.Other software environments are highlighted and the current work motivated; inparticular, the present work is an attempt to balance software infrastructureand user flexibility. The applicable class of problems and design of thesoftware components is discussed in detail. Several examples demonstrate theeffectiveness of the design, including applications that incorporateuncertainty. Current and planned developments are discussed.
展开▼